"""

list:在python中，列表是一个有序的，并且可修改的内置的数据结构
可以随时的添加，删除，修改
"""


#创建一个 列表，用中括号开表示   [ ]

# scores = [80,90,75,95]
# print(scores)
# print(type(scores))
#
# my_list = [100,"苹果",True,3.14]
# print(my_list)
# print(type(my_list))




#从列表中取出元素
#通过索引来取值
# fruits = ["苹果","香蕉","橙子"]
# print(fruits[0])
# print(fruits[1])
# print(fruits[2])
# print(fruits[3])   # IndexError: list index out of range



# fruits = ["苹果","香蕉","橙子"]

# if "苹果" in fruits:
#     print("存在")


# if "西瓜" not in fruits:
#     print("不存在")


#添加

# append:添加元素，并将元素添加到最后一位
# fruits = ["苹果","香蕉","橙子"]
# fruits.append("葡萄")
# print(fruits)


#insert(位置，东西)
# fruits = ["苹果","香蕉","橙子"]
# fruits.insert(1,"草莓")
# print(fruits)


#合并两个列表
#extend
#list1.extend(list2)   将list2 添加到list1中
# list1 = [1,2,3,4]
# list2 = [5,6,7,8]
# list1.extend(list2)
# print(list1)




#删除
#删除最后一个：pop
# fruits = ["苹果","香蕉","橙子"]
# fruits.pop()
# print(fruits)

#删除指定的内容： remove
# fruits = ["苹果","香蕉","橙子"]
# # fruits.remove("香蕉")
# fruits.remove("葡萄")  # ValueError: list.remove(x): x not in list
# print(fruits)

#clear，返回一个空的列表
# fruits = ["苹果","香蕉","橙子"]
# fruits.clear()
# print(fruits)

# 通过索引进行删除
# fruits = ["苹果","香蕉","橙子"]
# del fruits[1]
# print(fruits)

#修改
#直接将指定的位置换成新的内容
# fruits = ["苹果","香蕉","橙子"]
# fruits[1] = '榴莲'
# print(fruits)



#通过切片的方式来获取数据
# list1 = [1,2,(1,2,3),"hello world",[1,2,3]]
#
# print(list1[0])
# print(list1[-1][2])


#copy

# list1 = [1,2,3,4,5]
# new_list = list1.copy()
# print(list1)

# count():计数
# list1 = [1,2,2,2,2,2,2]
# print(list1.count(2))

# list 排序
# sort:对列表进行排序

# list1 = [8,7,9,5,6,2,4,1,3]
# # list1.sort()
# list1.reverse()   #将列表进行反转
# print(list1)


#查看元素第一次出现在哪里
# nums = [10,20,30,20]
# # print(nums.index(20))  #返回 1
# print(len(nums))   #里面有4个元素


#遍历列表

# fruits = ["苹果","香蕉","橙子"]
# #
# # for i in fruits:
# #     print("wc爱吃",i)
#
#
# i = 0
#
# while i < len(fruits):
#     print(fruits[i])
#     i  = i + 1


# friends = ["小明", "小红"]
# new_friends    = "小刚"
#
# if new_friends not in friends:
#     friends.append(new_friends)
# print(friends)

# scores = [85, 92, 78, 96, 88]
#
# max_scores = max(scores)
# print(max_scores)

#删除字符串列表中的所有空字符串
#不要在遍历原列表的同时直接删除，会引起索引的问题
# words = ["hello", "", "world", "", "python"]
#
# #创建一个空的列表，来存放我们筛选之后的元素
#
# filtered_words = []
#
# for i in words:
#     if i != "":    #判断是否为空的字符串
#         filtered_words.append(i)
# print(filtered_words)

# 合并两个朋友列表并去重

# list1 = ["小明", "小红", "小刚"]
# list2 = ["小红", "小丽", "小强"]
#
# merged = []   # 创建一个新的列表来存放
# seen = set()   #利用集合的概念，进行记录哪些名字是已经出现过
# for name in list1 + list2:
#     #创建一个name的变量  list1 + list2
#     # 生成一个新的列表 ["小红", "小丽", "小强"，"小明"，"小红", "小刚"]
#     if name not in seen:   #判断 这个名字是否存在于seen这个集合中
#         merged.append(name)   #不在的话，添加到name变量中
#         seen.add(name)  # 使用add添加到merged中，主要是用来保证顺序
# print(merged)


# 5. 计算有效成绩的平均分（排除 -1），保留两位小数
# scores = [85, -1, 92, 78, -1, 96, 88]
# total = 0  #有效成绩的总和
# count = 0  # 有效的成绩量
#
# for score in scores:
#     if score != -1:   #判断是否为有效的成绩
#         total += score   #如果是有效的，加到总分
#         count += 1    #有效的成绩的数量
# if count ==0:   #避免除以0
#     average = 0.0
# else:
#     average = total / count   #相除
# average111 = round(average,2)   # 指定保留两位小数
# print(average111)


# round

# round() 主要作用是对数字进行四舍五入，并且，可以指定保留几位小数



#作业：
# ages = {'张三':20, '李四':17, '王五':22, '赵六':16}
# for x in ages:
